1. Field of the Invention
The present invention relates to an information processing apparatus, an authentication method, and a computer program. In particular, the invention relates to a technique suitable for user authentication.
2. Description of the Related Art
A hash algorithm which has one-way and collision-resistant characteristics can be used when storing a password in a system. To be specific, the password is not stored as is, but a hash value of the password is stored.
In recent years, successful attacks against hash algorithms have revealed the vulnerability of a message digest (MD) 5 as a kind of hash function. Even if someone successfully attacks the hash algorithm, the password may not always be able to be obtained from a hash value. In the case of a hash algorithm being attacked, it is preferable to use a hash algorithm other than the attacked one in order to enhance security.
The following are conventional techniques for changing an algorithm. A technique discussed in Japanese Patent Application Laid-Open No. 2001-84271 first determines whether an algorithm version of data feature quantity extraction processing performed on an image, which is already registered in a system, includes an image different from that of a currently-used version. As a result of the determination, if an image different from that of the currently-used version is included, the currently-used data feature quantity extraction processing algorithm is applied to the image to obtain its feature quantity and weight information.
According to a technique discussed in Japanese Patent Application Laid-Open No. 2005-278065, a first device sends an old authentication key to a second device in a case where the first and second devices authenticate each other. Then, when the second device authenticates the old authentication key, a new authentication key is sent from the second device to the first device. Then, when the first device authenticates the new authentication key, the first device updates the old authentication key to the new authentication key.
According to the above conventional techniques, if a hash value of a password, which is obtained using the old hash algorithm, is already registered in a system, when the hash algorithm is changed, the following problems occur.
The hash value already registered in the system can be calculated only with the old hash algorithm. Therefore, if the hash algorithm is replaced by a new one, the hash value already registered in the system becomes invalid. Assuming that the old hash value is a hash value of a password, if a user enters a correct password, since the hash algorithm is changed, the resultant hash value is incorrect. As a result, the user cannot login to the system. Considering convenience for users, it is desirable to allow a user to log in to the system using the same password even if a hash algorithm is changed because the user does not need to recognize that the system is changed.
To that end, at the time of changing a hash algorithm, a hash value may be calculated using a new hash algorithm based on the old hash value stored in a system. With this method, a user can log in to the system using the same password before and after the change of the hash algorithm. The new hash value can be calculated only when the system knows the original password or the system can derive the original password from the old hash value.
However, it is very difficult to cause the system to recognize the original password. It is also very difficult to derive the original password from the old hash value because of one-way characteristic of a hash algorithm. Accordingly, the new hash value cannot be generated using the old hash value. Therefore, if the hash algorithm is changed, a user cannot log in to the system using the old password.
Alternatively, to allow a user to log in to the system, an administrator may reset a password for each user. In this case, a new hash value can be calculated based on a new hash algorithm using a password input by the administrator. Therefore, if the new hash value is stored in the system, a user can log in to the system using the password set by the administrator from then on. However, if it is necessary to reset passwords of many users, setting the passwords becomes burdensome to the administrator.
In addition, the system may automatically generate a new password to obtain a new hash value based on a new hash algorithm and notify each user of the new password. However, in any way, if a hash algorithm is changed, a user is forced to change a password.